import SJGDocument = require('./cont/SJGDocument');
import GlobalData = require('./../z/GlobalData');
import ParserClassLoader = require('./base/ParserClassLoader');
import SJGTypeSetBoxUtil2 = require('./../typeset/SJGTypeSetBoxUtil2');
export  = SJGKernel;

/**
 *
 * @author 
 *
 */
class SJGKernel {

    public g:GlobalData = new GlobalData();
    public doc:SJGDocument = new SJGDocument(this.g);

    constructor(){
        // 初始化Paser的对象加载器
        ParserClassLoader.loadKernelClass();
        // 初始化SJGTypeSetBoxUtil
        SJGTypeSetBoxUtil2.calcKindWHs();
    }

    // 初始化文档数据
    public initDoc(jsonObj, versionId){
        this.doc.fromJson(jsonObj,versionId);
    }
    // 初始化文档数据测试
    public initDocTest(jsonObj, versionId){
        this.doc.addTestData();// 增加测试数据
    }
    // 初始化用户的可替换数组
    public initUserReplaces(jsonObj, versionId){
        this.doc.initUserReplaces(jsonObj, versionId);
    }
    // 初始化用户的可替换数组－测试
    public initUserReplacesTest(jsonObj, versionId){
        this.doc.addTestDataOfUserReplaces();// 增加测试数据－模拟用户数据
    }
    // 排版
    public typeset(callback:Function){
        this.doc.typeset(callback);
    }


}
